/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.assembler.input;

import java.util.List;

import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

import fr.generali.accueilclient.client.om.IContact;
import fr.generali.accueilclient.client.om.ILien;
import fr.generali.accueilclient.client.om.IPersonne;
import fr.generali.refservcommuns.rce.gestionrelation.dtogestionrelation.DtoDossierP17;
import fr.generali.refservcommuns.rce.gestionrelation.dtogestionrelation.DtoListeDossierP17;
import fr.generali.refservcommuns.rce.gestionrelation.gestionrelationservice.GestionRelation;
import fr.generali.refservcommuns.rce.gestionrelation.pty.relationspersonnes.DtoLienPersonnes;
import fr.generali.refservcommuns.rce.gestionrelation.pty.relationspersonnes.DtoRoleDansLienPersonnes;

/**
 * @author selrhazala
 */
@Component("contactToGestionRelationConverter")
public class ContactToGestionRelationConverter implements Converter<IContact, GestionRelation> {

    /**
     * {@inheritDoc}
     */
    public GestionRelation convert(IContact input) {
        GestionRelation gestionRelation = null;
        if (input != null) {
            IPersonne client = input.getClient();
            DtoDossierP17 dtoDossierP17 = new DtoDossierP17();

            if (input.getLien() != null) {
                ILien lien = input.getLien();

                DtoLienPersonnes dtoLienPersonnes = new DtoLienPersonnes();
                // dtoLienPersonnes.setPeriodeValidite();

                DtoRoleDansLienPersonnes role1 = new DtoRoleDansLienPersonnes();
                role1.setPersonneLiee(client.getNumeroClient());
                role1.setTypeRoleDansLienPersonne(lien.getRole1());
                dtoLienPersonnes.setRole1(role1);

                DtoRoleDansLienPersonnes role2 = new DtoRoleDansLienPersonnes();
                role2.setPersonneLiee(lien.getPersonneLiee().getNumeroClient());
                role2.setTypeRoleDansLienPersonne(lien.getRole2());
                dtoLienPersonnes.setRole2(role2);

                dtoDossierP17.setLienPersonne(dtoLienPersonnes);

                dtoDossierP17.setCodeUser("BC");
                dtoDossierP17.setIdentifiantPersonne(client.getNumeroClient());
            }

            DtoListeDossierP17 dtoListeDossierCB = new DtoListeDossierP17();
            List<DtoDossierP17> listeDossierCB = dtoListeDossierCB.getDossierP17();
            listeDossierCB.add(dtoDossierP17);

            gestionRelation = new GestionRelation();
            gestionRelation.setDtoListeDossierP17(dtoListeDossierCB);
        }

        return gestionRelation;
    }

}
